package com.groupfour.attendancemanagementsystem.dao;

import com.groupfour.attendancemanagementsystem.entity.DO.TeacherDO;
import com.groupfour.attendancemanagementsystem.entity.DTO.TeacherAddDTO;
import com.groupfour.attendancemanagementsystem.entity.DTO.TeacherFindDTO;
import com.groupfour.attendancemanagementsystem.entity.DTO.TeacherUpdateDTO;
import com.groupfour.attendancemanagementsystem.entity.DTO.EmploymentStatusAndTeacherCode;
import com.groupfour.attendancemanagementsystem.entity.VO.TeacherVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface TeacherDao {

    /**
     * @author： 卑微小峰
     * @param： userCode
     * @return： int
     * @exception: none
     * @describe： 获取教师登录信息
     */
    TeacherDO getTeacherByTeacherCode(@Param("userCode")String userCode);

    /**
     * @author： 卑微小峰
     * @param： newPw,userCode
     * @return： int
     * @exception: none
     * @describe： 教师修改自己的密码
     */
    int updatePassword(@Param("newPwd")String newPwd, @Param("userCode")String userCode);


    /**
     * @author： li
     * @param： TeacherFindDTO
     * @return： TeacherVO
     * @exception: none
     * @describe： 按照教师查询表单输入内容进行查询返回教师列表
     */
    List<TeacherVO> findTeacherByTeacherFindDTO(TeacherFindDTO teacherFindDTO);
    /**
     * @author： li
     * @param： TeacherAddDTO
     * @return： Boolean
     * @exception: none
     * @describe： 按照教师新增表单输入内容进行新增教师
     */
    int AddTeacher(TeacherAddDTO teacherAddDTO);
    /**
     * @author： li
     * @param： TeacherUpdateDTO
     * @return： Boolean
     * @exception: none
     * @describe： 按照教师修改表单输入内容进行教师信息修改
     */
    int UpdateTeacher(TeacherUpdateDTO teacherUpdateDTO);

    /**
     * @author li
     * @param employmentStatusAndTeacherCode
     * @return int
     * @describe 修改教师任职状态
     */
    int UpdateTeacherEmploymentStatus(EmploymentStatusAndTeacherCode employmentStatusAndTeacherCode);
    /**
     * @author li
     * @param teaCode
     * @return int
     * @describe 修改教师任职状态
     */
    int  selectTeacherCode(@Param("teaCode") String teaCode);
}
